import request from "@/utils/request";

const ARTICLE_BASE_URL = "/api/admin";

const ArticleAPI = {
  // 修改文章
  changeArticleData(newArticleData: ArticleData) {
    return request<any, any>({
      url: `${ARTICLE_BASE_URL}/changeArticle`,
      method: "put",
      data: newArticleData,
    });
  },

  // 获取所编辑的文章数据
  getEditArticle(article_id: number) {
    return request<any, any>({
      url: `${ARTICLE_BASE_URL}/editArticle`,
      method: "get",
      params: { article_id },
    });
  },

  // 获取标签文章数据
  getTagArticle() {
    return request<any, any>({
      url: `${ARTICLE_BASE_URL}/tagArticle`,
      method: "get",
    });
  },

  // 获取分类文章数据
  getCategoryArticle() {
    return request<any, any>({
      url: `${ARTICLE_BASE_URL}/categoryArticle`,
      method: "get",
    });
  },

  // 添加文章
  addArticle(newArticleData: ArticleData) {
    return request<any, any>({
      url: `${ARTICLE_BASE_URL}/addArticle`,
      method: "post",
      data: newArticleData,
    });
  },

  // 获取文章的数据和数量
  getArticle(page: number, pagesize: number, title?: string) {
    return request<any, ArticleDataCount>({
      url: `${ARTICLE_BASE_URL}/article`,
      method: "get",
      params: { page, pagesize, title },
    });
  },
};

export default ArticleAPI;

// 获取分类文章数据类型

// 获取文章数据数量类型
export interface ArticleDataCount {
  articleData: ArticleData[];
  articleCount: number;
  server_url: string;
}

// 获取文章数据类型
export interface ArticleData {
  imageUrl?: string; // 可选字段
  article_id: number; // 必填字段
  title: string; // 必填字段
  content: string; // 必填字段
  tag_ids: string | number[]; // 必填字段
  category_id: number | string; // 必填字段
  cover?: string; // 可选字段
}
